package main

import "math"

// 这题比132 模式简单很多， 是 123模式， 找到 2后， 直接比较3，不用管1是否相同
// 还和这道面试题很像：https://gitee.com/douma_edu/douma_algo_training_camp/issues/I4KWJK#note_7672226
func increasingTriplet(nums []int) bool {
	numI := nums[0]
	numsJ := math.MaxInt32
	for j := 1; j < len(nums); j++ {
		// 1. 维护当前最小值
		numI = min(numI, nums[j-1])
		// 2. 当前元素小于 numI 不能作为 j，
		if nums[j] <= numI {
			continue
		}
		// 3. 更新second 为最小的second, 那么更容易出现 k
		if numsJ < nums[j] {
			return true
		} else {
			numsJ = nums[j]
		}
	}
	return false
}

func min(a, b int) int {
	if a > b {
		return b
	}
	return a
}
